//package com.bionet.gateway.config;
//
///**
// * @author hzx
// * @create 2021-09-18 14:26
// */
//
//import cn.dev33.satoken.reactor.filter.SaReactorFilter;
//import cn.dev33.satoken.router.SaRouter;
//import cn.dev33.satoken.stp.StpUtil;
//import cn.dev33.satoken.util.SaResult;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.Arrays;
//
///**
// * [Sa-Token 权限认证] 配置类
// *
// * @author kong
// */
//@Configuration
//public class SaTokenConfigure {
//    // 注册 Sa-Token全局过滤器
//    @Bean
//    public SaReactorFilter getSaReactorFilter() {
//        return new SaReactorFilter()
//                // 拦截地址
//                .addInclude("/**")
//                // 开放地址
//                .addExclude("/sso/*","/**/client/**","/favicon.ico")
//                // 鉴权方法：每次访问进入
//                .setAuth(r -> {
//                    // 登录验证 -- 拦截所有路由，并排除/user/doLogin 用于开放登录
////                    SaRouter.match(Arrays.asList("/**"), Arrays.asList("/client/isLogin", "/client/getSsoAuthUrl", "/client/doLoginByTicket"), () -> StpUtil.checkLogin());
//                    if(StpUtil.isLogin() == false) {
//                        // 与前端约定好，code=401时代表会话未登录
//                        SaRouter.back(SaResult.ok().setCode(410));
//                    }
//                    // 权限认证 -- 不同模块, 校验不同权限
////                    SaRouter.match("/user/**", () -> StpUtil.checkPermission("user"));
////                    SaRouter.match("/client/**", () -> StpUtil.checkPermission("client"));
////                    SaRouter.match("/admin/**", () -> StpUtil.checkPermission("admin"));
////                    SaRouter.match("/goods/**", () -> StpUtil.checkPermission("goods"));
////                    SaRouter.match("/orders/**", () -> StpUtil.checkPermission("orders"));
//
//                    // ...
//                })
//                // 异常处理方法：每次setAuth函数出现异常时进入
//                .setError(e -> {
//                    return SaResult.error(e.getMessage());
//                })
//                ;
//    }
//}
//
